home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 March
/
EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso
/
earcd
/
devel
/
vbcc-68k-src
/
machines
/
amiga68k
/
libsrc
/
stdio
/
ungetc.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-01-01
|
657b
|
23 lines
#include <stdlib.h>
#include <stdio.h>
int ungetc(int c,FILE *f)
{
if(!f) return(EOF);
if((f->flags&(_READABLE|_WRITE|_ERR|_EOF))!=_READABLE) return(EOF);
f->flags|=_READ;
if(!f->bufsize){if(f->flags&_UNBUF) f->bufsize=1; else f->bufsize=BUFSIZ;}
if(!f->base){
if(!(f->base=(char *)malloc(f->bufsize+1)+1))
return(EOF);
f->pointer=f->base;
}
if(f->pointer<f->base){
/* Buffer voll und bereits ein Zeichen reingestopft, also wird es */
/* ueberschrieben */
return(*f->pointer=c);
}
f->count++;
return(*--f->pointer=c);
}